/** @file
  Define NVData structures used by the HTTP Boot configuration component.

Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent

**/

#ifndef _HTTP_BOOT_NVDATA_STRUC_H_
#define _HTTP_BOOT_NVDATA_STRUC_H_

#include <Guid/HttpBootConfigHii.h>

#define HTTP_BOOT_IP_VERSION_4       0
#define HTTP_BOOT_IP_VERSION_6       1

//
// Macros used for an IPv4 or an IPv6 address.
//
#define URI_STR_MIN_SIZE             0
#define URI_STR_MAX_SIZE             255

#define DESCRIPTION_STR_MIN_SIZE     6
#define DESCRIPTION_STR_MAX_SIZE     75

#define CONFIGURATION_VARSTORE_ID    0x1234

#define FORMID_MAIN_FORM             1

#define KEY_INITIATOR_URI            0x101

#define HTTP_BOOT_DEFAULT_DESCRIPTION_STR   L"UEFI HTTP"

#pragma pack(1)
typedef struct _HTTP_BOOT_CONFIG_IFR_NVDATA {
  UINT8     IpVersion;
  UINT8     Padding;
  CHAR16    Description[DESCRIPTION_STR_MAX_SIZE];
  CHAR16    Uri[URI_STR_MAX_SIZE];
} HTTP_BOOT_CONFIG_IFR_NVDATA;
#pragma pack()


#endif
